/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package BackEnd;

import BackEnd.Exceptions.NotExistRegisterException;
import java.util.Date;
import Dao.*;
import java.sql.Time;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 *
 * @author emmanuel
 */
public class QueEstasPensando {
    private long id;
    private Usuario usuario;
    private Date fechaCreacion;
    private Time hora;
    private String pensamiento;

    public QueEstasPensando() {
        id=0;
        fechaCreacion = new Date();
        pensamiento="";
    }

    
    
    public QueEstasPensando(Date fechaCreacion, String pensamiento) {
        id=0;
        this.fechaCreacion = fechaCreacion;
        this.pensamiento = pensamiento;
    }
    
    /**
     * @return the fechaCreacion
     */
    public Date getFechaCreacion() {
        return fechaCreacion;
    }

    /**
     * @param fechaCreacion the fechaCreacion to set
     */
    public void setFechaCreacion(Date fechaCreacion) {
        this.fechaCreacion = fechaCreacion;
    }

    /**
     * @return the pensamiento
     */
    public String getPensamiento() {
        return pensamiento;
    }

    /**
     * @param pensamiento the pensamiento to set
     */
    public void setPensamiento(String pensamiento) {
        this.pensamiento = pensamiento;
    }
    
    public boolean abrir(long id) {
        try {
             QueEstasPensandoValueObject qepvo = (QueEstasPensandoValueObject) new QueEstasPensandoDao().traer(new PkId((int)getId()));
             this.setId(qepvo.getId());
             this.setFechaCreacion(qepvo.getFechaCheacion());
             this.setPensamiento(qepvo.getTexto());
             this.setHora(qepvo.getHoraCreacion());

             Usuario us=new Usuario();
             us.abrir(qepvo.getIdUsuario());
             this.setUsuario(us);

        } catch (NotExistRegisterException ex) {
            Logger.getLogger(QueEstasPensando.class.getName()).log(Level.SEVERE, null, ex);
            return false;
        }
        return true;
    }

    public void grabar() {
        QueEstasPensandoValueObject qepvo=new QueEstasPensandoValueObject();
        qepvo.setFechaCheacion(fechaCreacion);
        qepvo.setHoraCreacion(hora);
        qepvo.setId((int)id);
        qepvo.setIdUsuario((int)usuario.getId());


        try {
            try {
                new QueEstasPensandoDao().traer(new PkId((int)id));
                } catch (NotExistRegisterException ex){
                    new QueEstasPensandoDao().create(qepvo);
                }

             new QueEstasPensandoDao().update(qepvo);
            } catch (Exception ex1) {Logger.getLogger(Post.class.getName()).log(Level.SEVERE, null, ex1);}

    }

    /**
     * @return the id
     */
    public long getId() {
        return id;
    }

    /**
     * @param id the id to set
     */
    public void setId(long id) {
        this.id = id;
    }

    /**
     * @return the usuario
     */
    public Usuario getUsuario() {
        return usuario;
    }

    /**
     * @param usuario the usuario to set
     */
    public void setUsuario(Usuario usuario) {
        this.usuario = usuario;
    }

    /**
     * @return the hora
     */
    public Time getHora() {
        return hora;
    }

    /**
     * @param hora the hora to set
     */
    public void setHora(Time hora) {
        this.hora = hora;
    }


}
